---
title: Creating your own Home Server
x-toc-enable: true
...

# Introduction

A home server is incredibly useful as a NAS, media server, torrent daemon, and much more.
To create a home server, you'll want an always-on machine connected to the internet.
You can generally repurpose any old machine with a wired internet connection to be your always-on home server.
Keep in mind that some proprietary BIOSs must be configured to allow headless boot (boot without a keyboard and screen).

Any distro will do for your home server, so you should use whatever you're most comfortable with.
This guide will assume the username on your server is *myserver,* and the IP address of the server is *192.168.1.47.*

## Setting and Getting IP Information

Generally, every time a client connects to an access-point, the access point assigns it an IP address.
You don't want to have to figure out your server's IP address every time you want to connect, so you instead want to set a static IP for your server machine.
It's possible to set a static IP from your router itself, but it's a bit easier to do so directly from your machine.
The process for setting a static IP is generally quite straight-forward, but the steps differ between distros.
Search for 'set static ip *my distro'.*
Keep in mind that you need to set your IP to something on your main subnet and it can't conflict with other machines that have a static IP.

You can determine the necessary information by running: `ip r`. For example:

```
> ip r
default via 192.168.1.1 dev wlp2s0 proto dhcp src 192.168.1.47 metric 3003
```

In this example: `192.168.1.1` is your router IP which you cannot use, and `192.168.1.47` is your current IP.
The easiest way to make sure that your static IP is valid is to simply set it as your current IP (192.168.1.47 in this example).

In order to contact and use your home server when you're away from your local network, you'll also need to get your WAN IP address.
You can obtain your outward-facing WAN IP with a site like [whatismyip](https://www.whatismyip.com/) or use one of these sites via the command line:

```
curl ident.me
> 1.2.3.4
```

For the remainder of this guide we'll assume your WAN IP is `1.2.3.4`.
Whenever your see the above-mentioned IP addresses in this guide, replace them with the ones you have obtained from this section.

# Specific Guides

The following is a list of guides for common home server tasks.
You can follow each of them in order to create a fully-fledged home server with some useful applications.

## Basic Setup

- [How to set up ssh](ssh.html)
- [How to use port forwards](PortForward.html)
- [How to boot up your server remotely](wol.html)

## Program/Service Guides

- [Transmission-daemon]()
- [NAS]()
- [Kodi]()
- [ZNC]()


## Resources, Sources, Further Reading

[StackExchange](https://web.archive.org/web/20190919202304/https://askubuntu.com/questions/1174376/how-to-create-a-user-with-the-least-privileges-permissions-but-enough-to-do-ssh)

[OpenWRT DMZ configuration using VLANs](https://openwrt.org/docs/guide-user/firewall/fw3_configurations/fw3_dmz?s[]=dmz)

[Socat Man Page](https://linux.die.net/man/1/socat)
